/**
 * @file me_order.cpp
 * @brief 匹配引擎订单结构实现
 * @details 实现了匹配引擎订单结构的方法，包括字符串转换等功能
 */

#include "me_order.h"

namespace Exchange {
  /**
   * @namespace Exchange
   * @brief 交易所相关功能的命名空间
   */
  /**
   * @brief 将MEOrder对象转换为字符串表示
   * @return 订单的字符串表示，包含所有属性
   */
  auto MEOrder::toString() const -> std::string {
    // 创建字符串流对象
    std::stringstream ss;
    // 构造包含订单所有属性的字符串
    ss << "MEOrder" << "["
       << "ticker:" << tickerIdToString(ticker_id_) << " "         // 证券ID
       << "cid:" << clientIdToString(client_id_) << " "           // 客户ID
       << "oid:" << orderIdToString(client_order_id_) << " "     // 客户订单ID
       << "moid:" << orderIdToString(market_order_id_) << " "    // 市场订单ID
       << "side:" << sideToString(side_) << " "                  // 交易方向
       << "price:" << priceToString(price_) << " "               // 价格
       << "qty:" << qtyToString(qty_) << " "                     // 数量
       << "prio:" << priorityToString(priority_) << " "          // 优先级
       << "prev:" << orderIdToString(prev_order_ ? prev_order_->market_order_id_ : OrderId_INVALID) << " "  // 前一个订单ID
       << "next:" << orderIdToString(next_order_ ? next_order_->market_order_id_ : OrderId_INVALID) << "]"; // 后一个订单ID

    // 返回构造的字符串
    return ss.str();
  }
}
